<template>
	<view>
		<cu-custom bgColor="bg-gradual-blue" :isBack="true">
			<block slot="backText" v-click="">返回</block>
			<block slot="content">文档中心</block>
		</cu-custom>
		
		<view class="cu-bar bg-white solid-bottom margin-top">
			<view class="action">
				<text class="cuIcon-title text-blue">
					C# 基础，如何在实战中使用反射
				</text>
			</view>
		</view>
		<view class="padding bg-white">
			<view class="text-left padding">
				1.什么是元数据（MetaData）和反射（reflection）
				
				一般情况下我们的程序都在处理数据的读、写、操作和展示。但是有些程序操作的数据不是数字、文本、图片，而是程序和程序类型本身的信息。
				
				①元数据是包含程序以及类型信息的数据，它保存在程序的程序集当中。
				
				②程序在运行的时候，可以查看其他程序集或者其本身的元数据。这个行为就是反射。
				
				2.Type类
				
				BCL声明了一个Type类型（它是抽象类），用来包含类型的特性。使用这个类的对象能让我们获取程序使用的类型的信息。
				
				由于Type是抽象类，所以它不能被实例化。而是在运行时，CLR创建从Type（RuntimeType）派生的类型的实例。当我们要访问这些实例的时候，CLR不会返回派生类的引用而是返回Type基类的引用。
				
				关于Type有如下重要的点：
				
				①对于程序每一个需要用到的类型，CLR会穿件一个包含这个类型信息的Type类型的对象（真实的是上面说的派生的类型的实例）。
				
				②程序中用到的每一个类型都会关联到独立的Type类的对两个象。
				
				③无论创建的类型有多少个实例，只有一个Type对象会关联到所有这些实例。就像下面的图表示的一样。创建了一个OtherClass的实例oc、以及两个MyClass的实例mc1和mc2，但是在堆上都只会有一个Type对象来的对应他们，如下面的图示：
				
				
				
				简单看一下Type这个类型，里面可以看到如下的一些方法和属性。
				
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			
		}
	}
</script>

<style>

</style>
